at the bottom of target region 

	for (;si!=end;++si)// replace all the code you have under this with the code below
	{	
		
		EntViewOrg = gEngfuncs.GetEntityByIndex(ax)->origin + up * si->h + forward * si->f + right * si->r;		
		if(PathFree(me.pmEyePos,EntViewOrg)) return &(*si);
		else
		
		if(cvar.autoedge)
{
		EntViewOrg = gEngfuncs.GetEntityByIndex(ax)->origin + up * si->h + ((forward * si->f) * cvar.ae_f) + ((right * si->r) * cvar.ae_r);
		

		if(PathFree(me.pmEyePos,EntViewOrg)) return &(*si);
		
		else
		EntViewOrg = gEngfuncs.GetEntityByIndex(ax)->origin + up * si->h + ((forward * si->f) * cvar.ae_f) + ((right * si->r) * (0-cvar.ae_r));
		

		if(PathFree(me.pmEyePos,EntViewOrg)) return &(*si);
		else
		EntViewOrg = gEngfuncs.GetEntityByIndex(ax)->origin + up * si->h + ((forward * si->f) * (cvar.ae_f/2)) + ((right * si->r) * (cvar.ae_r/2));
		
		
		if(PathFree(me.pmEyePos,EntViewOrg)) return &(*si);
		
		else
		EntViewOrg = gEngfuncs.GetEntityByIndex(ax)->origin + up * si->h + ((forward * si->f) * (cvar.ae_f/2)) + right * ((right * si->r) * (0-(cvar.ae_r/2)));
	

		if(PathFree(me.pmEyePos,EntViewOrg)) return &(*si);

}

	}
	return NULL;
}

register cvar autoedge as int
register cvar ae_f and ae_r as float of 0.3